home *** CD-ROM | disk | FTP | other *** search
/ Aminet 19 / Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso / Aminet / comm / cnet / gu40pack.lha / gu40pack / OFFSET_Scanner < prev    next >
Text File  |  1997-03-21  |  7KB  |  105 lines

  1. /**************************************************************************\
  2.             $VER: OFFSET Scanner, v2.10 (19-Mar-97) by Dotoran!
  3. \**************************************************************************/
  4. options results;signal on SYNTAX;signal on ERROR;signal on IOERR
  5. a=sourceline(2);parse var a . ", "ver" ("vdate")" .;a=random(,,time("s"))
  6. tr=transmit;se=sendstring;gc=getchar;gu=getuser;gs=getscratch;qu=query
  7. a="rexxsupport.library";if ~show("l",a) then if ~addlib(a,0,-30) then exit
  8. parse source . . fp .;df=left(fp,max(lastpos("/",fp),lastpos(":",fp)))
  9. changewhere "OFFSET Scanner" ; oldwh=result ; bkfile=df"OFFSET_BookMarks"
  10. off2=0 ; bk.=1 ; call READBMARKS ; get=1 ; ctr=0 ; hi=1 ; move=1 ; inc=1
  11.  
  12. START:
  13.   tr "f1c8::: cbOFFSET caScanner cb"ver" c8::: cdBy Dotoran c8:::n1"
  14.   qu "c6Start cbOFFSET c6Value c7<caENTERc7=ca"right(defoff,7,"0")"c7>c6: ca" ; off=result
  15.   qu "c6Enter Your c9TEST c6String c7<caENTERc7=caXXXc7>c6: ca" ; test=result ; if test="" then test="XXX"
  16.   qu "c6Load This cdSCRATCH c6Buffer c7<caENTERc7=ca2c7>c6: ca" ; scra=result ; if scra="" then scra=2
  17.   loadscratch scra ; savescratch (-scra) ; if off="" | datatype(off,"n")=0 then off=defoff
  18.   se "c6Do You Want to View cfMENU c6Now? c7[caNoc7]c6: ca" ; gc ; a=result
  19.   if a="Y" then do ; tr "Yes." ; call MENU ; end
  20.     else tr "No.n2c6Use cdHc6, cdMc6, cd/c6, or cd? c6to View cfMenuc6.n1"
  21. START2:
  22.   if get=1 then gu off ; if get=2 then gs off
  23.   a=result ; tr "cb"substr("us",get,1)" c6"right(off,7,"0")"c7: ca"a
  24.   if index(a,test)>0 then do ; ctr=hi ; if hi>10 then hi=10 ; end
  25.   ctr=ctr+1 ; off2=off ; off=off+move*inc ; if off<1 then do ; move=1
  26.     inc=1 ; off=1 ; signal START2 ; end
  27.   if ctr<hi then signal START2
  28. START3:
  29.   se "cf->ca" ; gc ; b=result ; d1=0
  30.   if index("/?HM",b)~=0 then do ; tr "Menu" ; call MENU ; signal START3 ; end
  31.   if b="E" then do ; se "c6Entering cbSleep Test c6Mode.n1cb"substr("us",get,1)" sc6"
  32.     se right(off,7,"0")"c7: c6Scanning for cb"ca"test"cb"c6..." ; signal START4 ; end
  33.   if b="Q" then do ; se "h2cdQ c6to cdQuitc7: ca" ; gc ; a=result ; end
  34.   if b="D" then do ; qu "h2c6Dc7:ca" ; hi=result ; d1=1 ; end
  35.   if b="N" then do ; qu "h2c6Nc7:ca" ; off=result ; d1=1 ; end
  36.   if b="T" then do ; qu "h2c6Tc7:ca" ; test=result ; d1=1 ; end
  37.   if b="J" then do ; qu "h2c6Jc7:ca" ; inc=result ; off=off+inc-1 ; d1=1 ; end
  38.   if b="+" | b="=" then do ; tr "Forwards" ; move=1 ; off=off+2 ; d1=1 ; end
  39.   if b="-" then do ; tr "Backwards" ; move=-1 ; off=off-2 ; d1=1 ; end
  40.   if b="U" then do ; tr "Use GetUser" ; get=1 ; d1=1 ; end
  41.   if b="S" then do ; tr "Use GetScratch" ; get=2 ; d1=1 ; end
  42.   if b="C" then do ; tr "Clear Screenf1" ; off=off2 ; signal START2 ; end
  43.   if b="V" then do ; se "h2c6Vc7:  c2xxxxxca<7i64 2}" ; gu 70 ; a=result
  44.     o=left(off,2) ; if a="" then a=o ; off=a||substr(off-1,3) ; d1=1 ; end
  45.   if b="O" then do ; se "h2c6Oc7:c2xxcai64 5}" ; gu 70 ; a=result
  46.     o=right(off,5) ; if a="" then a=o ; off=left(off,2)||right(a,5,"0") ; d1=1 ; end
  47.   if b="P" then do ; se "h2c6Pc7:cai64 3}" ; gu 70 ; scra=result
  48.     loadscratch scra ; savescratch (-scra) ; d1=1 ; end
  49.   if b="B" then do ; se "h2c6Bc7:ca" ; gc ; z=result
  50.     if index("0123456789",z)=0 then do ; se "h2" ; signal START3 ; end
  51.     bk.z=off2 ; tr "cdBookMark c7"z" caset to c7`c6"off2"c7'" ; d1=1 ; end
  52.   if b="F" then do ; se "h2c6Fc7:ca" ; gc ; z=result
  53.     if index("0123456789",z)=0 then do ; se "h2" ; signal START3 ; end
  54.     off=bk.z ; tr "Switching to cdBookMark c7"z"ca..." ; signal START2 ; end
  55.   if b="|" then do ; tr "Diverting to c7`c6"right(defoff,7,"0")"c7'" ; off=defoff ; signal START2 ; end
  56.   if b="L" then do ; se "Current cdBookMark caSettings:n2"
  57.     do i=0 to 9 ; if get=1 then gu bk.i ; else gs bk.i
  58.       tr "cb"i"c7>c6"right(bk.i,7,"0")"c7: ca"result ; end i ; tr ; d1=1 ; end
  59.   if off="" | datatype(off,"n")=0 then off=off2
  60.   ctr=0 ; if a="Q" then do ; tr "cdQuit" ; call SAVEBMARKS ; signal BYE ; end ; else se "hb"
  61.   if d1=1 then signal START3 ; else se "h2"
  62.  signal START2
  63. START4:
  64.   if get=1 then gu off ; if get=2 then gs off ; a=result ; se "u"right(off,7,"0")
  65.   if index(a,test)>0 then do ; tr "n1cf->c6Exiting  cbSleep Test c6Mode."
  66.     off=off-5*inc ; hi=7 ; ctr=1 ; signal sTART2 ; end
  67.   off=off+move*inc ; if off<1 then do ; tr "n1" ; move=1 ; off=1 ; signal START2 ; end
  68.   maygetchar ; if result="NOCHAR" then signal START4 ; else tr
  69.  signal START3
  70.  
  71. MENU:
  72.   tr "n1cf->c6Dc7: c6DISPLAY c2This Many OffSets.         cf->c6Nc7: c2Specify c6NEW c2Offsetc7(c6???????c7)c2."
  73.   tr "cf->c6Vc7: c2New c6VARIABLE c2Typec7(c6??c2xxxxxc7)c2.        cf->c6Oc7: c2New  c6OFFSET c2Digitsc7(c2xxc6?????c7)c2."
  74.   tr "cf->c6Tc7: c2Specify New c6TEST c2String.           cf->c6Ec7: c6ENTER c2Sleep Test Mode."
  75.   tr "cf->c6+c7: c2Move List c6FORWARDSc2.                cf->c6-c7: c2Move List c6BACKWARDSc2."
  76.   tr "cf->c6Uc7: c2Use c6GETUSER c2Command.               cf->c6Sc7: c2Use c6GETSCRATCH c2Command."
  77.   tr "cf->c6Pc7: c6PICK c2New GetScratch User.          cf->c6Jc7: c2Specify New c6JUMP c2Value."
  78.   tr "cf->c6Bc7: c2Set GetUser c6BOOKMARKc7(c60c7-c69c7)c2.         cf->c6Fc7: c6FLIP c2to GetUser BookMarkc7(c60c7-c69c7)c2."
  79.   tr "cf->c6Lc7: c6LIST c2GetUser BookMarks.            cf->c6Cc7: c6CLEAR c2The Screen Now."
  80.   tr "cf->c6Hc7: c2This c6MENUc7(c2Also c6M / ?c7)c2.             cf->cdQc7: cdQuit cbScanning c6OffSetsc2.n1"
  81.  return
  82.  
  83. READBMARKS: ; if ~exists(bkfile) then call SAVEBMARKS
  84.   call open(f1,bkfile,"r") ; defoff=readln(f1)
  85.     do i=0 to 9 ; bk.i=readln(f1) ; end i
  86.   call close(f1) ; return
  87.  
  88. SAVEBMARKS:
  89.   call open(f1,bkfile,"w") ; call writeln(f1,off2)
  90.     do i=0 to 9 ; call writeln(f1,bk.i) ; end i
  91.   call close(f1) ; return
  92.  
  93. BYE:;changewhere oldwh;exit
  94.  
  95. CHECK:;if ARG() & ARG(1)~="###PANIC" then return ARG(1)
  96.   getcarrier;if result="TRUE" then if ARG() then return ARG(1);else return
  97.   logentry "Lost Carrier!!";bufferflush;signal BYE
  98. SYNTAX:;ERROR:;IOERR:;e1="n1 Error: "rc" ("errortext(rc)")"
  99.   e2="  Line: "left(sigl,4)"File:";c="`"fp", "ver"'";e2=e2" "c;tr e1;tr e2
  100.   logentry e1;logentry e2;e=strip(translate(sourceline(sigl),"\{",""))
  101.   do while e~="";e3="Source: "left(e,37);tr e3;logentry e3;e=substr(e,38);end
  102.   bufferflush;signal BYE
  103. /**************************************************************************\
  104. \****************************************** Frontiers BBS (716)/823-9892 **/
  105.